package br.com.dinarth.model.entities;

import java.util.List;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.ForeignKey;

/**
 *
 * @author Dinarth
 */
@Entity
@Table(name = "estado")
public class Estado {

    private static long serialVersionUID = 1L;

    @Id
    @GeneratedValue
    @Column(name="IdEstado", nullable = false)
    private Integer idEstado;
    @Column(name="NomeEstado", nullable = false, length=40)
    private String NomeEstado;
    
    @OneToMany(mappedBy= "estado", fetch = FetchType.LAZY)
    @ForeignKey(name="EstadoEndereco")
    private List<Endereco> enderecos;

    public Estado() {
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public static void setSerialVersionUID(long serialVersionUID) {
        Estado.serialVersionUID = serialVersionUID;
    }

    public Integer getIdEstado() {
        return idEstado;
    }

    public void setIdEstado(Integer idEstado) {
        this.idEstado = idEstado;
    }

    public String getNomeEstado() {
        return NomeEstado;
    }

    public void setNomeEstado(String NomeEstado) {
        this.NomeEstado = NomeEstado;
    }


    public List<Endereco> getEnderecos() {
        return enderecos;
    }

    public void setEnderecos(List<Endereco> enderecos) {
        this.enderecos = enderecos;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 47 * hash + Objects.hashCode(this.idEstado);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Estado other = (Estado) obj;
        if (!Objects.equals(this.idEstado, other.idEstado)) {
            return false;
        }
        return true;
    }
    
    
    
    

}
